package com.zhc.excel.service.impl;

import java.util.List;

import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.zhc.excel.domain.ImportOperateInfo;
import com.zhc.excel.domain.query.ImportOperateInfoQuery;
import com.zhc.excel.manager.ImportOperateInfoManager;
import com.zhc.excel.service.ImportOperateInfoService;
import com.zhc.excel.utils.exceptions.ExistedException;
import com.zhc.common.utils.page.PageUtil;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.perf4j.aop.Profiled;
 
/**
 * ImportOperateInfoService接口的实现类
 * 
 * @author jinsicao
 * 
 */
@Service("importOperateInfoService")
public class ImportOperateInfoServiceImpl implements ImportOperateInfoService {

    /** LOG */
    private static final Log LOG = LogFactory.getLog(ImportOperateInfoServiceImpl.class);

    @Autowired
    private ImportOperateInfoManager importOperateInfoManager;

    /**
     * {@inheritDoc}
     */
    @Profiled(tag = "ImportOperateInfoService.batchInsert")
    public boolean insert(List<ImportOperateInfo> importOperateInfoList) {
        boolean resultFlag = false;
        try {
            if (CollectionUtils.isNotEmpty(importOperateInfoList)) {
                resultFlag = importOperateInfoManager.insert(importOperateInfoList);
            } else {
                LOG.warn("ImportOperateInfoServiceImpl#batchInsert failed, param is illegal.");
            }
        } catch (Exception e) {
            LOG.error("ImportOperateInfoServiceImpl#batchInsert has error.", e);
        }
        return resultFlag;
    }

    /**
     * {@inheritDoc}
     */
    @Profiled(tag = "ImportOperateInfoService.insert")
    public boolean insert(ImportOperateInfo importOperateInfo) {
        boolean resultFlag = false;
        try {
            if (null != importOperateInfo) {
                resultFlag = importOperateInfoManager.insert(importOperateInfo);
            } else {
                LOG.warn("ImportOperateInfoServiceImpl#insert failed, param is illegal.");
            }
        } catch (ExistedException e) {
            LOG.warn("ImportOperateInfoServiceImpl#insert failed, importOperateInfo has existed.");
            throw e;
        } catch (Exception e) {
            LOG.error("ImportOperateInfoServiceImpl#insert has error.", e);
        }
        return resultFlag;
    }

    /**
     * {@inheritDoc}
     */
    @Profiled(tag = "ImportOperateInfoService.update")
    public boolean update(ImportOperateInfo importOperateInfo) {
        boolean resultFlag = false;
        try {
            if (null != importOperateInfo && null != importOperateInfo.getId()) {
                resultFlag = importOperateInfoManager.update(importOperateInfo);
            } else {
                LOG.warn("ImportOperateInfoServiceImpl#update failed, param is illegal.");
            }
        } catch (Exception e) {
            LOG.error("ImportOperateInfoServiceImpl#update has error.", e);
        }
        return resultFlag;
    }

    /**
     * {@inheritDoc}
     */
    @Profiled(tag = "ImportOperateInfoService.queryImportOperateInfoList")
    public List<ImportOperateInfo> queryImportOperateInfoList(ImportOperateInfoQuery queryBean) {
        List<ImportOperateInfo> importOperateInfoList = null;
        try {
            importOperateInfoList = importOperateInfoManager.queryImportOperateInfoList(queryBean);
        } catch (Exception e) {
            LOG.error("ImportOperateInfoServiceImpl#queryImportOperateInfoList has error.", e);
        }
        return importOperateInfoList;
    }

    /**
     * {@inheritDoc}
     */
    @Profiled(tag = "ImportOperateInfoService.queryImportOperateInfoListWithPage")
    public List<ImportOperateInfo> queryImportOperateInfoListWithPage(ImportOperateInfoQuery queryBean, PageUtil pageUtil) {
        List<ImportOperateInfo> importOperateInfoList = null;
        try {
            importOperateInfoList = importOperateInfoManager.queryImportOperateInfoListWithPage(queryBean, pageUtil);
        } catch (Exception e) {
            LOG.error("ImportOperateInfoServiceImpl#queryImportOperateInfoListWithPage has error.", e);
        }
        return importOperateInfoList;
    }

    /**
     * {@inheritDoc}
     */
    @Profiled(tag = "ImportOperateInfoService.delete")
    public boolean delete(ImportOperateInfo importOperateInfo) {
        boolean resultFlag = false;
        try {
            if (null != importOperateInfo && null != importOperateInfo.getId()) {
                resultFlag = importOperateInfoManager.delete(importOperateInfo);
            } else {
                LOG.warn("ImportOperateInfoServiceImpl#delete param is illegal.");
            }
        } catch (Exception e) {
            LOG.error("ImportOperateInfoServiceImpl#delete has error.", e);
        }
        return resultFlag;
    }

    /**
     * {@inheritDoc}
     */
    @Profiled(tag = "ImportOperateInfoService.batchDelete")
    public boolean delete(ImportOperateInfo[] importOperateInfos) {
        boolean resultFlag = false;
        try {
            if (null != importOperateInfos && importOperateInfos.length > 0) {
                resultFlag = importOperateInfoManager.delete(importOperateInfos);
            } else {
                LOG.warn("ImportOperateInfoServiceImpl#batchDelete failed, param is illegal.");
            }
        } catch (Exception e) {
            LOG.error("ImportOperateInfoServiceImpl#batchDelete has error.", e);
        }
        return resultFlag;
    }

    /**
     * {@inheritDoc}
     */
    @Profiled(tag = "ImportOperateInfoService.getImportOperateInfoById")
    public ImportOperateInfo getImportOperateInfoById(Long id) {
        ImportOperateInfo importOperateInfo = null;
        try {
            if (null != id) {
                importOperateInfo = importOperateInfoManager.getImportOperateInfoById(id);
            } else {
                LOG.warn("ImportOperateInfoServiceImpl#getImportOperateInfoById failed, param is illegal.");
            }
        } catch (Exception e) {
            LOG.error("ImportOperateInfoServiceImpl#getImportOperateInfoById has error.", e);
        }
        return importOperateInfo;
    }
}

